package com.clear.honghefinance.wechat.dto.req;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * <p>
 * 生成微信公众号二维码DTO
 * </p>
 */
@Getter
@Setter
public class GenerateMpQrcodeDTO implements Serializable {

    /**
     * 该二维码有效时间，以秒为单位。 最大不超过2592000（即30天），此字段如果不填，则默认有效期为60秒
     */
    @JsonProperty(value = "expire_seconds") // jackson处理JSON数据与实体类字段不一致
    // @SerializedName("expire_seconds")  // gson处理JSON数据与实体类字段不一致
    private Integer expireSeconds;

    /**
     * 二维码类型
     * QR_SCENE为临时的整型参数值
     * QR_STR_SCENE为临时的字符串参数值
     * QR_LIMIT_SCENE为永久的整型参数值
     * QR_LIMIT_STR_SCENE为永久的字符串参数值
     */
    @JsonProperty(value = "action_name")
    private String actionName;

    /**
     * 二维码详细信息
     * <p>
     * "action_info": {
     * "scene": {
     * "scene_id": 123 // 场景值ID
     * }
     * }
     */
    @JsonProperty(value = "action_info")
    private ActionInfo actionInfo;


    /**
     * scene
     */
    @Getter
    @Setter
    public class ActionInfo {
        private Scene scene;
    }

    @Getter
    @Setter
    public class Scene {

        /**
         * 场景值ID，临时二维码时为32位非0整型，永久二维码时最大值为100000（目前参数只支持1--100000）
         */
        @JsonProperty(value = "scene_id")
        private Integer sceneId;

        /**
         * 场景值ID（字符串形式的ID），字符串类型，长度限制为1到64
         */
        @JsonProperty(value = "scene_str")
        private String sceneStr;
    }

}
